WITH Ada.Text_IO;
WITH Unit_Test_Assertions;
WITH Ada.Strings.Unbounded;
WITH Petrinets;

PACKAGE Test_Cases_Petrinet IS

   PACKAGE Dyn_Str   RENAMES Ada.Strings.Unbounded;


   -- Initialisation de la suite de test
   PROCEDURE Set_Up;

   -- Demarrage de la suite de tests
   PROCEDURE Run ;

   -- Terminaison de la suite de test
   PROCEDURE Tear_Down (nbTest : OUT Integer; nbError : OUT Integer; name : OUT Dyn_Str.Unbounded_String) ;


   -- Test de la recuparation du nombre de places
   PROCEDURE Test_Get_Nb_Place ;

   -- Test de la recuparation du nombre de transitions
   PROCEDURE Test_Get_Nb_Transition ;

   -- Test de l'existence des places
   PROCEDURE Test_Is_Place ;

   -- Test de l'existence des transitions
   PROCEDURE Test_Is_Transition ;

   -- Test de la recuperation de l'index d'une place via son nom
   PROCEDURE Test_Get_Place_Index ;

   -- Test de la recuperation de l'index d'une transition via son nom
   PROCEDURE Test_Get_Transition_Index ;

   -- Test de la recuperation du marquage initial d'une place par son index
   PROCEDURE Test_Get_Init_Mark ;

   -- Test de l'existence d'un arc rentrant
   PROCEDURE Test_Has_Post_Arrow ;

   -- Test de l'existence d'un arc sortant
   PROCEDURE Test_Has_Pre_Arrow ;

   -- Test du poids d'un arc rentrant
   PROCEDURE Test_Get_Post_Arrow_Weight ;

   -- Test du poids d'un arc sortant
   PROCEDURE Test_Get_Pre_Arrow_Weight ;


PRIVATE
   PACKAGE Rdp IS NEW Petrinets (100, 100);
   PACKAGE Integerio IS NEW Ada.Text_IO.Integer_Io (Integer);

   testRDP		: Rdp.Petrinet;
   resultBool 		: Boolean;
   resultInt 		: Integer;

END Test_Cases_Petrinet;
